package com.eastfair.venueservice.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.venueservice.dto.ViolationProjectDTO;
import com.eastfair.venueservice.entity.ViolationProject;
import com.eastfair.venueservice.vo.ViolationProjectVO;

import java.util.List;
import java.util.function.Function;

/**
 * <p>
 * 业务接口
 * 违规项目
 * </p>
 *
 * @author dqq
 * @date 2023-03-15
 */
public interface ViolationProjectService extends SuperService<ViolationProject> {

    /**
     * 查询违规项目列表.
     *
     * @param pageParams           the page params
     * @param queryWrapperFunction the query wrapper function
     * @return the list
     */
    Page<ViolationProjectVO> listViolationProjectVO(PageParams<ViolationProjectDTO> pageParams, Function<ViolationProjectDTO, QueryWrapper<ViolationProject>> queryWrapperFunction);

    /**
     * 场馆查询违规项目.
     *
     * @param pageParams the page params
     * @return the page
     */
    Page<ViolationProjectVO> listForVenue(PageParams<ViolationProjectDTO> pageParams);

    /**
     * 主场查询违规项目.
     *
     * @param pageParams the page params
     * @return the page
     */
    Page<ViolationProjectVO> listForHome(PageParams<ViolationProjectDTO> pageParams);

    /**
     * id获取违规项目.
     *
     * @param id the id
     * @return the vo by id
     */
    ViolationProjectVO getVOById(Long id);
}
